package hello;

/**
 * Created with IntelliJIDEA.
 * Description:
 * User: ASUS
 * Date: 2025/9/11
 * Time: 22:15
 */
public class StringConversionDemo {
    public static void main(String[] args) {
        String str = "  Java Programming  ";

        // char[] toCharArray(): 将字符串转换为一个新的字符数组
        char[] chars = str.toCharArray();
        System.out.println("转换为字符数组后的第一个元素: " + chars[0]); // 注意这里是空格

        // byte[] getBytes(): 使用平台默认字符集将字符串转换为字节数组
        byte[] bytes = str.getBytes();
        System.out.println("转换为字节数组后的第一个元素: " + bytes[0]);

        // String toUpperCase(): 转换为大写
        String upper = str.toUpperCase();
        System.out.println("转换为大写: '" + upper + "'"); // 不可变性：str本身不变，返回新字符串

        // String toLowerCase(): 转换为小写
        String lower = str.toLowerCase();
        System.out.println("转换为小写: '" + lower + "'");

        // String trim(): 去除字符串首尾的空白字符（空格, tab, 换行等）
        String trimmed = str.trim();
        System.out.println("去除首尾空白后: '" + trimmed + "'");

        // String concat(String str): 拼接字符串，等效于 '+'，但通常直接用 '+'
        String concatenated = trimmed.concat(" is fun!");
        System.out.println("拼接后: " + concatenated);

        // 静态方法 String.valueOf(...): 将其他类型转换为字符串
        String fromInt = String.valueOf(123);
        String fromDouble = String.valueOf(3.14);
        String fromBoolean = String.valueOf(true);
        System.out.println("int转字符串: " + fromInt);
        System.out.println("double转字符串: " + fromDouble);
        System.out.println("boolean转字符串: " + fromBoolean);

        // 任何类型与字符串使用 '+' 拼接，都会自动调用该类型的 toString() 或 valueOf() 转换为字符串
        String autoConvert = "" + 12345;
        System.out.println("自动转换: " + autoConvert);
    }
}

